//
//  MapTraverseCondition.h
//  DiceWar
//
//  Created by xiaofeng on 22/6/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#ifndef CLASS_GAME_GAMEPLAY_MAPTRAVERSECONDITION_H_
#define CLASS_GAME_GAMEPLAY_MAPTRAVERSECONDITION_H_

#include "Player.h"
#include "MapGraph.h"

class AvailableCellsTraverseCondition
{
public:
    AvailableCellsTraverseCondition(const MapGraph::HexMapGridMatrix* pMapGridMatrix);
    ~AvailableCellsTraverseCondition();
    
    bool operator()(int coordinateX, int coordinateY);
    
private:
    const MapGraph::HexMapGridMatrix* m_pMapGridMatrix;
};

class PlayerCellsTraverseCondition
{
public:
    PlayerCellsTraverseCondition(const MapGraph::HexMapGridMatrix* pMapGridMatrix, PlayerType player);
    ~PlayerCellsTraverseCondition();
    
    bool operator()(int coordinateX, int coordinateY);
    
private:
    const MapGraph::HexMapGridMatrix* m_pMapGridMatrix;
    PlayerType m_playerType;
};

#endif //CLASS_GAME_GAMEPLAY_MAPTRAVERSECONDITION_H_
